/**
 * @file LogAspect.java
 * @brief 文件简要说明
 * <p>
 * 文件详细说明
 * @author - 2023/5/5  贾思浩  创建初始版本
 * @version - 2023/5/5  V1.0  简要版本说明
 * @par 版权信息：
 * 2023 Copyright 北京鑫万佳科技发展科技有限公司 All Rights Reserved.
 */
package com.jsh.aspect;

import com.jsh.annotation.MyLog;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;

import java.lang.reflect.Method;

/**
 *
 * @brief 类简要说明
 *
 * 类详细说明
 *
 *@author
 *    - 2023/5/5  贾思浩  创建初始版本
 *
 */
@Component
@Aspect
public class LogAspect {

    @Pointcut("@annotation(com.jsh.annotation.MyLog)")
    private void PointCut(){}

    @AfterReturning(value = "PointCut()", returning = "result")
    public void AfterReturnAdvice(JoinPoint joinPoint, Object result){
        //从切面织入点处通过反射机制获取织入点处的方法
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        // 获取切入点所在的方法
        Method method = signature.getMethod();
        MyLog log = method.getAnnotation(MyLog.class);
        System.out.println(log.value());
        System.out.println(result);


    }

}
